/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/
"use strict";

var $protobuf = require("protobufjs/minimal");

// Common aliases
var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;

// Exported root namespace
var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});

$root.septdata = (function() {

    /**
     * Namespace septdata.
     * @exports septdata
     * @namespace
     */
    var septdata = {};

    /**
     * MainCmd enum.
     * @name septdata.MainCmd
     * @enum {string}
     * @property {number} kNull=0 kNull value
     * @property {number} kSwClassifyData=1 kSwClassifyData value
     */
    septdata.MainCmd = (function() {
        var valuesById = {}, values = Object.create(valuesById);
        values[valuesById[0] = "kNull"] = 0;
        values[valuesById[1] = "kSwClassifyData"] = 1;
        return values;
    })();

    septdata.SwClassifyItem = (function() {

        /**
         * Properties of a SwClassifyItem.
         * @memberof septdata
         * @interface ISwClassifyItem
         * @property {string|null} [index_code] SwClassifyItem index_code
         * @property {string|null} [industry_name] SwClassifyItem industry_name
         * @property {string|null} [parent_code] SwClassifyItem parent_code
         * @property {string|null} [level] SwClassifyItem level
         * @property {string|null} [industry_code] SwClassifyItem industry_code
         * @property {string|null} [is_pub] SwClassifyItem is_pub
         * @property {string|null} [src] SwClassifyItem src
         */

        /**
         * Constructs a new SwClassifyItem.
         * @memberof septdata
         * @classdesc Represents a SwClassifyItem.
         * @implements ISwClassifyItem
         * @constructor
         * @param {septdata.ISwClassifyItem=} [properties] Properties to set
         */
        function SwClassifyItem(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * SwClassifyItem index_code.
         * @member {string} index_code
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.index_code = "";

        /**
         * SwClassifyItem industry_name.
         * @member {string} industry_name
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.industry_name = "";

        /**
         * SwClassifyItem parent_code.
         * @member {string} parent_code
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.parent_code = "";

        /**
         * SwClassifyItem level.
         * @member {string} level
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.level = "";

        /**
         * SwClassifyItem industry_code.
         * @member {string} industry_code
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.industry_code = "";

        /**
         * SwClassifyItem is_pub.
         * @member {string} is_pub
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.is_pub = "";

        /**
         * SwClassifyItem src.
         * @member {string} src
         * @memberof septdata.SwClassifyItem
         * @instance
         */
        SwClassifyItem.prototype.src = "";

        /**
         * Creates a new SwClassifyItem instance using the specified properties.
         * @function create
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {septdata.ISwClassifyItem=} [properties] Properties to set
         * @returns {septdata.SwClassifyItem} SwClassifyItem instance
         */
        SwClassifyItem.create = function create(properties) {
            return new SwClassifyItem(properties);
        };

        /**
         * Encodes the specified SwClassifyItem message. Does not implicitly {@link septdata.SwClassifyItem.verify|verify} messages.
         * @function encode
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {septdata.ISwClassifyItem} message SwClassifyItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwClassifyItem.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.index_code != null && message.hasOwnProperty("index_code"))
                writer.uint32(/* id 1, wireType 2 =*/10).string(message.index_code);
            if (message.industry_name != null && message.hasOwnProperty("industry_name"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.industry_name);
            if (message.parent_code != null && message.hasOwnProperty("parent_code"))
                writer.uint32(/* id 3, wireType 2 =*/26).string(message.parent_code);
            if (message.level != null && message.hasOwnProperty("level"))
                writer.uint32(/* id 4, wireType 2 =*/34).string(message.level);
            if (message.industry_code != null && message.hasOwnProperty("industry_code"))
                writer.uint32(/* id 5, wireType 2 =*/42).string(message.industry_code);
            if (message.is_pub != null && message.hasOwnProperty("is_pub"))
                writer.uint32(/* id 6, wireType 2 =*/50).string(message.is_pub);
            if (message.src != null && message.hasOwnProperty("src"))
                writer.uint32(/* id 7, wireType 2 =*/58).string(message.src);
            return writer;
        };

        /**
         * Encodes the specified SwClassifyItem message, length delimited. Does not implicitly {@link septdata.SwClassifyItem.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {septdata.ISwClassifyItem} message SwClassifyItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwClassifyItem.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a SwClassifyItem message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.SwClassifyItem} SwClassifyItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwClassifyItem.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.SwClassifyItem();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.index_code = reader.string();
                    break;
                case 2:
                    message.industry_name = reader.string();
                    break;
                case 3:
                    message.parent_code = reader.string();
                    break;
                case 4:
                    message.level = reader.string();
                    break;
                case 5:
                    message.industry_code = reader.string();
                    break;
                case 6:
                    message.is_pub = reader.string();
                    break;
                case 7:
                    message.src = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a SwClassifyItem message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.SwClassifyItem} SwClassifyItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwClassifyItem.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a SwClassifyItem message.
         * @function verify
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        SwClassifyItem.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.index_code != null && message.hasOwnProperty("index_code"))
                if (!$util.isString(message.index_code))
                    return "index_code: string expected";
            if (message.industry_name != null && message.hasOwnProperty("industry_name"))
                if (!$util.isString(message.industry_name))
                    return "industry_name: string expected";
            if (message.parent_code != null && message.hasOwnProperty("parent_code"))
                if (!$util.isString(message.parent_code))
                    return "parent_code: string expected";
            if (message.level != null && message.hasOwnProperty("level"))
                if (!$util.isString(message.level))
                    return "level: string expected";
            if (message.industry_code != null && message.hasOwnProperty("industry_code"))
                if (!$util.isString(message.industry_code))
                    return "industry_code: string expected";
            if (message.is_pub != null && message.hasOwnProperty("is_pub"))
                if (!$util.isString(message.is_pub))
                    return "is_pub: string expected";
            if (message.src != null && message.hasOwnProperty("src"))
                if (!$util.isString(message.src))
                    return "src: string expected";
            return null;
        };

        /**
         * Creates a SwClassifyItem message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.SwClassifyItem} SwClassifyItem
         */
        SwClassifyItem.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.SwClassifyItem)
                return object;
            var message = new $root.septdata.SwClassifyItem();
            if (object.index_code != null)
                message.index_code = String(object.index_code);
            if (object.industry_name != null)
                message.industry_name = String(object.industry_name);
            if (object.parent_code != null)
                message.parent_code = String(object.parent_code);
            if (object.level != null)
                message.level = String(object.level);
            if (object.industry_code != null)
                message.industry_code = String(object.industry_code);
            if (object.is_pub != null)
                message.is_pub = String(object.is_pub);
            if (object.src != null)
                message.src = String(object.src);
            return message;
        };

        /**
         * Creates a plain object from a SwClassifyItem message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.SwClassifyItem
         * @static
         * @param {septdata.SwClassifyItem} message SwClassifyItem
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        SwClassifyItem.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.index_code = "";
                object.industry_name = "";
                object.parent_code = "";
                object.level = "";
                object.industry_code = "";
                object.is_pub = "";
                object.src = "";
            }
            if (message.index_code != null && message.hasOwnProperty("index_code"))
                object.index_code = message.index_code;
            if (message.industry_name != null && message.hasOwnProperty("industry_name"))
                object.industry_name = message.industry_name;
            if (message.parent_code != null && message.hasOwnProperty("parent_code"))
                object.parent_code = message.parent_code;
            if (message.level != null && message.hasOwnProperty("level"))
                object.level = message.level;
            if (message.industry_code != null && message.hasOwnProperty("industry_code"))
                object.industry_code = message.industry_code;
            if (message.is_pub != null && message.hasOwnProperty("is_pub"))
                object.is_pub = message.is_pub;
            if (message.src != null && message.hasOwnProperty("src"))
                object.src = message.src;
            return object;
        };

        /**
         * Converts this SwClassifyItem to JSON.
         * @function toJSON
         * @memberof septdata.SwClassifyItem
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        SwClassifyItem.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return SwClassifyItem;
    })();

    septdata.SwMemberItem = (function() {

        /**
         * Properties of a SwMemberItem.
         * @memberof septdata
         * @interface ISwMemberItem
         * @property {string|null} [l1_code] SwMemberItem l1_code
         * @property {string|null} [l1_name] SwMemberItem l1_name
         * @property {string|null} [l2_code] SwMemberItem l2_code
         * @property {string|null} [l2_name] SwMemberItem l2_name
         * @property {string|null} [l3_code] SwMemberItem l3_code
         * @property {string|null} [l3_name] SwMemberItem l3_name
         * @property {string|null} [ts_code] SwMemberItem ts_code
         * @property {string|null} [name] SwMemberItem name
         * @property {string|null} [in_date] SwMemberItem in_date
         * @property {string|null} [out_date] SwMemberItem out_date
         * @property {string|null} [is_new] SwMemberItem is_new
         */

        /**
         * Constructs a new SwMemberItem.
         * @memberof septdata
         * @classdesc Represents a SwMemberItem.
         * @implements ISwMemberItem
         * @constructor
         * @param {septdata.ISwMemberItem=} [properties] Properties to set
         */
        function SwMemberItem(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * SwMemberItem l1_code.
         * @member {string} l1_code
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.l1_code = "";

        /**
         * SwMemberItem l1_name.
         * @member {string} l1_name
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.l1_name = "";

        /**
         * SwMemberItem l2_code.
         * @member {string} l2_code
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.l2_code = "";

        /**
         * SwMemberItem l2_name.
         * @member {string} l2_name
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.l2_name = "";

        /**
         * SwMemberItem l3_code.
         * @member {string} l3_code
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.l3_code = "";

        /**
         * SwMemberItem l3_name.
         * @member {string} l3_name
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.l3_name = "";

        /**
         * SwMemberItem ts_code.
         * @member {string} ts_code
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.ts_code = "";

        /**
         * SwMemberItem name.
         * @member {string} name
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.name = "";

        /**
         * SwMemberItem in_date.
         * @member {string} in_date
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.in_date = "";

        /**
         * SwMemberItem out_date.
         * @member {string} out_date
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.out_date = "";

        /**
         * SwMemberItem is_new.
         * @member {string} is_new
         * @memberof septdata.SwMemberItem
         * @instance
         */
        SwMemberItem.prototype.is_new = "";

        /**
         * Creates a new SwMemberItem instance using the specified properties.
         * @function create
         * @memberof septdata.SwMemberItem
         * @static
         * @param {septdata.ISwMemberItem=} [properties] Properties to set
         * @returns {septdata.SwMemberItem} SwMemberItem instance
         */
        SwMemberItem.create = function create(properties) {
            return new SwMemberItem(properties);
        };

        /**
         * Encodes the specified SwMemberItem message. Does not implicitly {@link septdata.SwMemberItem.verify|verify} messages.
         * @function encode
         * @memberof septdata.SwMemberItem
         * @static
         * @param {septdata.ISwMemberItem} message SwMemberItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwMemberItem.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.l1_code != null && message.hasOwnProperty("l1_code"))
                writer.uint32(/* id 1, wireType 2 =*/10).string(message.l1_code);
            if (message.l1_name != null && message.hasOwnProperty("l1_name"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.l1_name);
            if (message.l2_code != null && message.hasOwnProperty("l2_code"))
                writer.uint32(/* id 3, wireType 2 =*/26).string(message.l2_code);
            if (message.l2_name != null && message.hasOwnProperty("l2_name"))
                writer.uint32(/* id 4, wireType 2 =*/34).string(message.l2_name);
            if (message.l3_code != null && message.hasOwnProperty("l3_code"))
                writer.uint32(/* id 5, wireType 2 =*/42).string(message.l3_code);
            if (message.l3_name != null && message.hasOwnProperty("l3_name"))
                writer.uint32(/* id 6, wireType 2 =*/50).string(message.l3_name);
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                writer.uint32(/* id 7, wireType 2 =*/58).string(message.ts_code);
            if (message.name != null && message.hasOwnProperty("name"))
                writer.uint32(/* id 8, wireType 2 =*/66).string(message.name);
            if (message.in_date != null && message.hasOwnProperty("in_date"))
                writer.uint32(/* id 9, wireType 2 =*/74).string(message.in_date);
            if (message.out_date != null && message.hasOwnProperty("out_date"))
                writer.uint32(/* id 10, wireType 2 =*/82).string(message.out_date);
            if (message.is_new != null && message.hasOwnProperty("is_new"))
                writer.uint32(/* id 11, wireType 2 =*/90).string(message.is_new);
            return writer;
        };

        /**
         * Encodes the specified SwMemberItem message, length delimited. Does not implicitly {@link septdata.SwMemberItem.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.SwMemberItem
         * @static
         * @param {septdata.ISwMemberItem} message SwMemberItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwMemberItem.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a SwMemberItem message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.SwMemberItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.SwMemberItem} SwMemberItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwMemberItem.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.SwMemberItem();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.l1_code = reader.string();
                    break;
                case 2:
                    message.l1_name = reader.string();
                    break;
                case 3:
                    message.l2_code = reader.string();
                    break;
                case 4:
                    message.l2_name = reader.string();
                    break;
                case 5:
                    message.l3_code = reader.string();
                    break;
                case 6:
                    message.l3_name = reader.string();
                    break;
                case 7:
                    message.ts_code = reader.string();
                    break;
                case 8:
                    message.name = reader.string();
                    break;
                case 9:
                    message.in_date = reader.string();
                    break;
                case 10:
                    message.out_date = reader.string();
                    break;
                case 11:
                    message.is_new = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a SwMemberItem message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.SwMemberItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.SwMemberItem} SwMemberItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwMemberItem.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a SwMemberItem message.
         * @function verify
         * @memberof septdata.SwMemberItem
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        SwMemberItem.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.l1_code != null && message.hasOwnProperty("l1_code"))
                if (!$util.isString(message.l1_code))
                    return "l1_code: string expected";
            if (message.l1_name != null && message.hasOwnProperty("l1_name"))
                if (!$util.isString(message.l1_name))
                    return "l1_name: string expected";
            if (message.l2_code != null && message.hasOwnProperty("l2_code"))
                if (!$util.isString(message.l2_code))
                    return "l2_code: string expected";
            if (message.l2_name != null && message.hasOwnProperty("l2_name"))
                if (!$util.isString(message.l2_name))
                    return "l2_name: string expected";
            if (message.l3_code != null && message.hasOwnProperty("l3_code"))
                if (!$util.isString(message.l3_code))
                    return "l3_code: string expected";
            if (message.l3_name != null && message.hasOwnProperty("l3_name"))
                if (!$util.isString(message.l3_name))
                    return "l3_name: string expected";
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                if (!$util.isString(message.ts_code))
                    return "ts_code: string expected";
            if (message.name != null && message.hasOwnProperty("name"))
                if (!$util.isString(message.name))
                    return "name: string expected";
            if (message.in_date != null && message.hasOwnProperty("in_date"))
                if (!$util.isString(message.in_date))
                    return "in_date: string expected";
            if (message.out_date != null && message.hasOwnProperty("out_date"))
                if (!$util.isString(message.out_date))
                    return "out_date: string expected";
            if (message.is_new != null && message.hasOwnProperty("is_new"))
                if (!$util.isString(message.is_new))
                    return "is_new: string expected";
            return null;
        };

        /**
         * Creates a SwMemberItem message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.SwMemberItem
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.SwMemberItem} SwMemberItem
         */
        SwMemberItem.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.SwMemberItem)
                return object;
            var message = new $root.septdata.SwMemberItem();
            if (object.l1_code != null)
                message.l1_code = String(object.l1_code);
            if (object.l1_name != null)
                message.l1_name = String(object.l1_name);
            if (object.l2_code != null)
                message.l2_code = String(object.l2_code);
            if (object.l2_name != null)
                message.l2_name = String(object.l2_name);
            if (object.l3_code != null)
                message.l3_code = String(object.l3_code);
            if (object.l3_name != null)
                message.l3_name = String(object.l3_name);
            if (object.ts_code != null)
                message.ts_code = String(object.ts_code);
            if (object.name != null)
                message.name = String(object.name);
            if (object.in_date != null)
                message.in_date = String(object.in_date);
            if (object.out_date != null)
                message.out_date = String(object.out_date);
            if (object.is_new != null)
                message.is_new = String(object.is_new);
            return message;
        };

        /**
         * Creates a plain object from a SwMemberItem message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.SwMemberItem
         * @static
         * @param {septdata.SwMemberItem} message SwMemberItem
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        SwMemberItem.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.l1_code = "";
                object.l1_name = "";
                object.l2_code = "";
                object.l2_name = "";
                object.l3_code = "";
                object.l3_name = "";
                object.ts_code = "";
                object.name = "";
                object.in_date = "";
                object.out_date = "";
                object.is_new = "";
            }
            if (message.l1_code != null && message.hasOwnProperty("l1_code"))
                object.l1_code = message.l1_code;
            if (message.l1_name != null && message.hasOwnProperty("l1_name"))
                object.l1_name = message.l1_name;
            if (message.l2_code != null && message.hasOwnProperty("l2_code"))
                object.l2_code = message.l2_code;
            if (message.l2_name != null && message.hasOwnProperty("l2_name"))
                object.l2_name = message.l2_name;
            if (message.l3_code != null && message.hasOwnProperty("l3_code"))
                object.l3_code = message.l3_code;
            if (message.l3_name != null && message.hasOwnProperty("l3_name"))
                object.l3_name = message.l3_name;
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                object.ts_code = message.ts_code;
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.in_date != null && message.hasOwnProperty("in_date"))
                object.in_date = message.in_date;
            if (message.out_date != null && message.hasOwnProperty("out_date"))
                object.out_date = message.out_date;
            if (message.is_new != null && message.hasOwnProperty("is_new"))
                object.is_new = message.is_new;
            return object;
        };

        /**
         * Converts this SwMemberItem to JSON.
         * @function toJSON
         * @memberof septdata.SwMemberItem
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        SwMemberItem.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return SwMemberItem;
    })();

    septdata.SwClassifyData = (function() {

        /**
         * Properties of a SwClassifyData.
         * @memberof septdata
         * @interface ISwClassifyData
         * @property {Array.<septdata.ISwClassifyItem>|null} [plate1] SwClassifyData plate1
         * @property {Array.<septdata.ISwClassifyItem>|null} [plate2] SwClassifyData plate2
         * @property {Array.<septdata.ISwClassifyItem>|null} [plate3] SwClassifyData plate3
         * @property {Array.<septdata.ISwMemberItem>|null} [members] SwClassifyData members
         */

        /**
         * Constructs a new SwClassifyData.
         * @memberof septdata
         * @classdesc Represents a SwClassifyData.
         * @implements ISwClassifyData
         * @constructor
         * @param {septdata.ISwClassifyData=} [properties] Properties to set
         */
        function SwClassifyData(properties) {
            this.plate1 = [];
            this.plate2 = [];
            this.plate3 = [];
            this.members = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * SwClassifyData plate1.
         * @member {Array.<septdata.ISwClassifyItem>} plate1
         * @memberof septdata.SwClassifyData
         * @instance
         */
        SwClassifyData.prototype.plate1 = $util.emptyArray;

        /**
         * SwClassifyData plate2.
         * @member {Array.<septdata.ISwClassifyItem>} plate2
         * @memberof septdata.SwClassifyData
         * @instance
         */
        SwClassifyData.prototype.plate2 = $util.emptyArray;

        /**
         * SwClassifyData plate3.
         * @member {Array.<septdata.ISwClassifyItem>} plate3
         * @memberof septdata.SwClassifyData
         * @instance
         */
        SwClassifyData.prototype.plate3 = $util.emptyArray;

        /**
         * SwClassifyData members.
         * @member {Array.<septdata.ISwMemberItem>} members
         * @memberof septdata.SwClassifyData
         * @instance
         */
        SwClassifyData.prototype.members = $util.emptyArray;

        /**
         * Creates a new SwClassifyData instance using the specified properties.
         * @function create
         * @memberof septdata.SwClassifyData
         * @static
         * @param {septdata.ISwClassifyData=} [properties] Properties to set
         * @returns {septdata.SwClassifyData} SwClassifyData instance
         */
        SwClassifyData.create = function create(properties) {
            return new SwClassifyData(properties);
        };

        /**
         * Encodes the specified SwClassifyData message. Does not implicitly {@link septdata.SwClassifyData.verify|verify} messages.
         * @function encode
         * @memberof septdata.SwClassifyData
         * @static
         * @param {septdata.ISwClassifyData} message SwClassifyData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwClassifyData.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.plate1 != null && message.plate1.length)
                for (var i = 0; i < message.plate1.length; ++i)
                    $root.septdata.SwClassifyItem.encode(message.plate1[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            if (message.plate2 != null && message.plate2.length)
                for (var i = 0; i < message.plate2.length; ++i)
                    $root.septdata.SwClassifyItem.encode(message.plate2[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
            if (message.plate3 != null && message.plate3.length)
                for (var i = 0; i < message.plate3.length; ++i)
                    $root.septdata.SwClassifyItem.encode(message.plate3[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
            if (message.members != null && message.members.length)
                for (var i = 0; i < message.members.length; ++i)
                    $root.septdata.SwMemberItem.encode(message.members[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified SwClassifyData message, length delimited. Does not implicitly {@link septdata.SwClassifyData.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.SwClassifyData
         * @static
         * @param {septdata.ISwClassifyData} message SwClassifyData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwClassifyData.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a SwClassifyData message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.SwClassifyData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.SwClassifyData} SwClassifyData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwClassifyData.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.SwClassifyData();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.plate1 && message.plate1.length))
                        message.plate1 = [];
                    message.plate1.push($root.septdata.SwClassifyItem.decode(reader, reader.uint32()));
                    break;
                case 2:
                    if (!(message.plate2 && message.plate2.length))
                        message.plate2 = [];
                    message.plate2.push($root.septdata.SwClassifyItem.decode(reader, reader.uint32()));
                    break;
                case 3:
                    if (!(message.plate3 && message.plate3.length))
                        message.plate3 = [];
                    message.plate3.push($root.septdata.SwClassifyItem.decode(reader, reader.uint32()));
                    break;
                case 4:
                    if (!(message.members && message.members.length))
                        message.members = [];
                    message.members.push($root.septdata.SwMemberItem.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a SwClassifyData message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.SwClassifyData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.SwClassifyData} SwClassifyData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwClassifyData.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a SwClassifyData message.
         * @function verify
         * @memberof septdata.SwClassifyData
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        SwClassifyData.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.plate1 != null && message.hasOwnProperty("plate1")) {
                if (!Array.isArray(message.plate1))
                    return "plate1: array expected";
                for (var i = 0; i < message.plate1.length; ++i) {
                    var error = $root.septdata.SwClassifyItem.verify(message.plate1[i]);
                    if (error)
                        return "plate1." + error;
                }
            }
            if (message.plate2 != null && message.hasOwnProperty("plate2")) {
                if (!Array.isArray(message.plate2))
                    return "plate2: array expected";
                for (var i = 0; i < message.plate2.length; ++i) {
                    var error = $root.septdata.SwClassifyItem.verify(message.plate2[i]);
                    if (error)
                        return "plate2." + error;
                }
            }
            if (message.plate3 != null && message.hasOwnProperty("plate3")) {
                if (!Array.isArray(message.plate3))
                    return "plate3: array expected";
                for (var i = 0; i < message.plate3.length; ++i) {
                    var error = $root.septdata.SwClassifyItem.verify(message.plate3[i]);
                    if (error)
                        return "plate3." + error;
                }
            }
            if (message.members != null && message.hasOwnProperty("members")) {
                if (!Array.isArray(message.members))
                    return "members: array expected";
                for (var i = 0; i < message.members.length; ++i) {
                    var error = $root.septdata.SwMemberItem.verify(message.members[i]);
                    if (error)
                        return "members." + error;
                }
            }
            return null;
        };

        /**
         * Creates a SwClassifyData message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.SwClassifyData
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.SwClassifyData} SwClassifyData
         */
        SwClassifyData.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.SwClassifyData)
                return object;
            var message = new $root.septdata.SwClassifyData();
            if (object.plate1) {
                if (!Array.isArray(object.plate1))
                    throw TypeError(".septdata.SwClassifyData.plate1: array expected");
                message.plate1 = [];
                for (var i = 0; i < object.plate1.length; ++i) {
                    if (typeof object.plate1[i] !== "object")
                        throw TypeError(".septdata.SwClassifyData.plate1: object expected");
                    message.plate1[i] = $root.septdata.SwClassifyItem.fromObject(object.plate1[i]);
                }
            }
            if (object.plate2) {
                if (!Array.isArray(object.plate2))
                    throw TypeError(".septdata.SwClassifyData.plate2: array expected");
                message.plate2 = [];
                for (var i = 0; i < object.plate2.length; ++i) {
                    if (typeof object.plate2[i] !== "object")
                        throw TypeError(".septdata.SwClassifyData.plate2: object expected");
                    message.plate2[i] = $root.septdata.SwClassifyItem.fromObject(object.plate2[i]);
                }
            }
            if (object.plate3) {
                if (!Array.isArray(object.plate3))
                    throw TypeError(".septdata.SwClassifyData.plate3: array expected");
                message.plate3 = [];
                for (var i = 0; i < object.plate3.length; ++i) {
                    if (typeof object.plate3[i] !== "object")
                        throw TypeError(".septdata.SwClassifyData.plate3: object expected");
                    message.plate3[i] = $root.septdata.SwClassifyItem.fromObject(object.plate3[i]);
                }
            }
            if (object.members) {
                if (!Array.isArray(object.members))
                    throw TypeError(".septdata.SwClassifyData.members: array expected");
                message.members = [];
                for (var i = 0; i < object.members.length; ++i) {
                    if (typeof object.members[i] !== "object")
                        throw TypeError(".septdata.SwClassifyData.members: object expected");
                    message.members[i] = $root.septdata.SwMemberItem.fromObject(object.members[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a SwClassifyData message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.SwClassifyData
         * @static
         * @param {septdata.SwClassifyData} message SwClassifyData
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        SwClassifyData.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults) {
                object.plate1 = [];
                object.plate2 = [];
                object.plate3 = [];
                object.members = [];
            }
            if (message.plate1 && message.plate1.length) {
                object.plate1 = [];
                for (var j = 0; j < message.plate1.length; ++j)
                    object.plate1[j] = $root.septdata.SwClassifyItem.toObject(message.plate1[j], options);
            }
            if (message.plate2 && message.plate2.length) {
                object.plate2 = [];
                for (var j = 0; j < message.plate2.length; ++j)
                    object.plate2[j] = $root.septdata.SwClassifyItem.toObject(message.plate2[j], options);
            }
            if (message.plate3 && message.plate3.length) {
                object.plate3 = [];
                for (var j = 0; j < message.plate3.length; ++j)
                    object.plate3[j] = $root.septdata.SwClassifyItem.toObject(message.plate3[j], options);
            }
            if (message.members && message.members.length) {
                object.members = [];
                for (var j = 0; j < message.members.length; ++j)
                    object.members[j] = $root.septdata.SwMemberItem.toObject(message.members[j], options);
            }
            return object;
        };

        /**
         * Converts this SwClassifyData to JSON.
         * @function toJSON
         * @memberof septdata.SwClassifyData
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        SwClassifyData.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return SwClassifyData;
    })();

    septdata.SwDailyItem = (function() {

        /**
         * Properties of a SwDailyItem.
         * @memberof septdata
         * @interface ISwDailyItem
         * @property {string|null} [ts_code] SwDailyItem ts_code
         * @property {string|null} [trade_date] SwDailyItem trade_date
         * @property {string|null} [name] SwDailyItem name
         * @property {number|null} [open] SwDailyItem open
         * @property {number|null} [low] SwDailyItem low
         * @property {number|null} [high] SwDailyItem high
         * @property {number|null} [close] SwDailyItem close
         * @property {number|null} [change] SwDailyItem change
         * @property {number|null} [pct_change] SwDailyItem pct_change
         * @property {number|null} [vol] SwDailyItem vol
         * @property {number|null} [amount] SwDailyItem amount
         * @property {number|null} [pe] SwDailyItem pe
         * @property {number|null} [pb] SwDailyItem pb
         * @property {number|null} [float_mv] SwDailyItem float_mv
         * @property {number|null} [total_mv] SwDailyItem total_mv
         */

        /**
         * Constructs a new SwDailyItem.
         * @memberof septdata
         * @classdesc Represents a SwDailyItem.
         * @implements ISwDailyItem
         * @constructor
         * @param {septdata.ISwDailyItem=} [properties] Properties to set
         */
        function SwDailyItem(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * SwDailyItem ts_code.
         * @member {string} ts_code
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.ts_code = "";

        /**
         * SwDailyItem trade_date.
         * @member {string} trade_date
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.trade_date = "";

        /**
         * SwDailyItem name.
         * @member {string} name
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.name = "";

        /**
         * SwDailyItem open.
         * @member {number} open
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.open = 0;

        /**
         * SwDailyItem low.
         * @member {number} low
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.low = 0;

        /**
         * SwDailyItem high.
         * @member {number} high
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.high = 0;

        /**
         * SwDailyItem close.
         * @member {number} close
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.close = 0;

        /**
         * SwDailyItem change.
         * @member {number} change
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.change = 0;

        /**
         * SwDailyItem pct_change.
         * @member {number} pct_change
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.pct_change = 0;

        /**
         * SwDailyItem vol.
         * @member {number} vol
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.vol = 0;

        /**
         * SwDailyItem amount.
         * @member {number} amount
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.amount = 0;

        /**
         * SwDailyItem pe.
         * @member {number} pe
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.pe = 0;

        /**
         * SwDailyItem pb.
         * @member {number} pb
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.pb = 0;

        /**
         * SwDailyItem float_mv.
         * @member {number} float_mv
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.float_mv = 0;

        /**
         * SwDailyItem total_mv.
         * @member {number} total_mv
         * @memberof septdata.SwDailyItem
         * @instance
         */
        SwDailyItem.prototype.total_mv = 0;

        /**
         * Creates a new SwDailyItem instance using the specified properties.
         * @function create
         * @memberof septdata.SwDailyItem
         * @static
         * @param {septdata.ISwDailyItem=} [properties] Properties to set
         * @returns {septdata.SwDailyItem} SwDailyItem instance
         */
        SwDailyItem.create = function create(properties) {
            return new SwDailyItem(properties);
        };

        /**
         * Encodes the specified SwDailyItem message. Does not implicitly {@link septdata.SwDailyItem.verify|verify} messages.
         * @function encode
         * @memberof septdata.SwDailyItem
         * @static
         * @param {septdata.ISwDailyItem} message SwDailyItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwDailyItem.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                writer.uint32(/* id 1, wireType 2 =*/10).string(message.ts_code);
            if (message.trade_date != null && message.hasOwnProperty("trade_date"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.trade_date);
            if (message.name != null && message.hasOwnProperty("name"))
                writer.uint32(/* id 3, wireType 2 =*/26).string(message.name);
            if (message.open != null && message.hasOwnProperty("open"))
                writer.uint32(/* id 4, wireType 5 =*/37).float(message.open);
            if (message.low != null && message.hasOwnProperty("low"))
                writer.uint32(/* id 5, wireType 5 =*/45).float(message.low);
            if (message.high != null && message.hasOwnProperty("high"))
                writer.uint32(/* id 6, wireType 5 =*/53).float(message.high);
            if (message.close != null && message.hasOwnProperty("close"))
                writer.uint32(/* id 7, wireType 5 =*/61).float(message.close);
            if (message.change != null && message.hasOwnProperty("change"))
                writer.uint32(/* id 8, wireType 5 =*/69).float(message.change);
            if (message.pct_change != null && message.hasOwnProperty("pct_change"))
                writer.uint32(/* id 9, wireType 5 =*/77).float(message.pct_change);
            if (message.vol != null && message.hasOwnProperty("vol"))
                writer.uint32(/* id 10, wireType 5 =*/85).float(message.vol);
            if (message.amount != null && message.hasOwnProperty("amount"))
                writer.uint32(/* id 11, wireType 5 =*/93).float(message.amount);
            if (message.pe != null && message.hasOwnProperty("pe"))
                writer.uint32(/* id 12, wireType 5 =*/101).float(message.pe);
            if (message.pb != null && message.hasOwnProperty("pb"))
                writer.uint32(/* id 13, wireType 5 =*/109).float(message.pb);
            if (message.float_mv != null && message.hasOwnProperty("float_mv"))
                writer.uint32(/* id 14, wireType 5 =*/117).float(message.float_mv);
            if (message.total_mv != null && message.hasOwnProperty("total_mv"))
                writer.uint32(/* id 15, wireType 5 =*/125).float(message.total_mv);
            return writer;
        };

        /**
         * Encodes the specified SwDailyItem message, length delimited. Does not implicitly {@link septdata.SwDailyItem.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.SwDailyItem
         * @static
         * @param {septdata.ISwDailyItem} message SwDailyItem message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwDailyItem.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a SwDailyItem message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.SwDailyItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.SwDailyItem} SwDailyItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwDailyItem.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.SwDailyItem();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.ts_code = reader.string();
                    break;
                case 2:
                    message.trade_date = reader.string();
                    break;
                case 3:
                    message.name = reader.string();
                    break;
                case 4:
                    message.open = reader.float();
                    break;
                case 5:
                    message.low = reader.float();
                    break;
                case 6:
                    message.high = reader.float();
                    break;
                case 7:
                    message.close = reader.float();
                    break;
                case 8:
                    message.change = reader.float();
                    break;
                case 9:
                    message.pct_change = reader.float();
                    break;
                case 10:
                    message.vol = reader.float();
                    break;
                case 11:
                    message.amount = reader.float();
                    break;
                case 12:
                    message.pe = reader.float();
                    break;
                case 13:
                    message.pb = reader.float();
                    break;
                case 14:
                    message.float_mv = reader.float();
                    break;
                case 15:
                    message.total_mv = reader.float();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a SwDailyItem message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.SwDailyItem
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.SwDailyItem} SwDailyItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwDailyItem.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a SwDailyItem message.
         * @function verify
         * @memberof septdata.SwDailyItem
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        SwDailyItem.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                if (!$util.isString(message.ts_code))
                    return "ts_code: string expected";
            if (message.trade_date != null && message.hasOwnProperty("trade_date"))
                if (!$util.isString(message.trade_date))
                    return "trade_date: string expected";
            if (message.name != null && message.hasOwnProperty("name"))
                if (!$util.isString(message.name))
                    return "name: string expected";
            if (message.open != null && message.hasOwnProperty("open"))
                if (typeof message.open !== "number")
                    return "open: number expected";
            if (message.low != null && message.hasOwnProperty("low"))
                if (typeof message.low !== "number")
                    return "low: number expected";
            if (message.high != null && message.hasOwnProperty("high"))
                if (typeof message.high !== "number")
                    return "high: number expected";
            if (message.close != null && message.hasOwnProperty("close"))
                if (typeof message.close !== "number")
                    return "close: number expected";
            if (message.change != null && message.hasOwnProperty("change"))
                if (typeof message.change !== "number")
                    return "change: number expected";
            if (message.pct_change != null && message.hasOwnProperty("pct_change"))
                if (typeof message.pct_change !== "number")
                    return "pct_change: number expected";
            if (message.vol != null && message.hasOwnProperty("vol"))
                if (typeof message.vol !== "number")
                    return "vol: number expected";
            if (message.amount != null && message.hasOwnProperty("amount"))
                if (typeof message.amount !== "number")
                    return "amount: number expected";
            if (message.pe != null && message.hasOwnProperty("pe"))
                if (typeof message.pe !== "number")
                    return "pe: number expected";
            if (message.pb != null && message.hasOwnProperty("pb"))
                if (typeof message.pb !== "number")
                    return "pb: number expected";
            if (message.float_mv != null && message.hasOwnProperty("float_mv"))
                if (typeof message.float_mv !== "number")
                    return "float_mv: number expected";
            if (message.total_mv != null && message.hasOwnProperty("total_mv"))
                if (typeof message.total_mv !== "number")
                    return "total_mv: number expected";
            return null;
        };

        /**
         * Creates a SwDailyItem message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.SwDailyItem
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.SwDailyItem} SwDailyItem
         */
        SwDailyItem.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.SwDailyItem)
                return object;
            var message = new $root.septdata.SwDailyItem();
            if (object.ts_code != null)
                message.ts_code = String(object.ts_code);
            if (object.trade_date != null)
                message.trade_date = String(object.trade_date);
            if (object.name != null)
                message.name = String(object.name);
            if (object.open != null)
                message.open = Number(object.open);
            if (object.low != null)
                message.low = Number(object.low);
            if (object.high != null)
                message.high = Number(object.high);
            if (object.close != null)
                message.close = Number(object.close);
            if (object.change != null)
                message.change = Number(object.change);
            if (object.pct_change != null)
                message.pct_change = Number(object.pct_change);
            if (object.vol != null)
                message.vol = Number(object.vol);
            if (object.amount != null)
                message.amount = Number(object.amount);
            if (object.pe != null)
                message.pe = Number(object.pe);
            if (object.pb != null)
                message.pb = Number(object.pb);
            if (object.float_mv != null)
                message.float_mv = Number(object.float_mv);
            if (object.total_mv != null)
                message.total_mv = Number(object.total_mv);
            return message;
        };

        /**
         * Creates a plain object from a SwDailyItem message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.SwDailyItem
         * @static
         * @param {septdata.SwDailyItem} message SwDailyItem
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        SwDailyItem.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.ts_code = "";
                object.trade_date = "";
                object.name = "";
                object.open = 0;
                object.low = 0;
                object.high = 0;
                object.close = 0;
                object.change = 0;
                object.pct_change = 0;
                object.vol = 0;
                object.amount = 0;
                object.pe = 0;
                object.pb = 0;
                object.float_mv = 0;
                object.total_mv = 0;
            }
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                object.ts_code = message.ts_code;
            if (message.trade_date != null && message.hasOwnProperty("trade_date"))
                object.trade_date = message.trade_date;
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.open != null && message.hasOwnProperty("open"))
                object.open = options.json && !isFinite(message.open) ? String(message.open) : message.open;
            if (message.low != null && message.hasOwnProperty("low"))
                object.low = options.json && !isFinite(message.low) ? String(message.low) : message.low;
            if (message.high != null && message.hasOwnProperty("high"))
                object.high = options.json && !isFinite(message.high) ? String(message.high) : message.high;
            if (message.close != null && message.hasOwnProperty("close"))
                object.close = options.json && !isFinite(message.close) ? String(message.close) : message.close;
            if (message.change != null && message.hasOwnProperty("change"))
                object.change = options.json && !isFinite(message.change) ? String(message.change) : message.change;
            if (message.pct_change != null && message.hasOwnProperty("pct_change"))
                object.pct_change = options.json && !isFinite(message.pct_change) ? String(message.pct_change) : message.pct_change;
            if (message.vol != null && message.hasOwnProperty("vol"))
                object.vol = options.json && !isFinite(message.vol) ? String(message.vol) : message.vol;
            if (message.amount != null && message.hasOwnProperty("amount"))
                object.amount = options.json && !isFinite(message.amount) ? String(message.amount) : message.amount;
            if (message.pe != null && message.hasOwnProperty("pe"))
                object.pe = options.json && !isFinite(message.pe) ? String(message.pe) : message.pe;
            if (message.pb != null && message.hasOwnProperty("pb"))
                object.pb = options.json && !isFinite(message.pb) ? String(message.pb) : message.pb;
            if (message.float_mv != null && message.hasOwnProperty("float_mv"))
                object.float_mv = options.json && !isFinite(message.float_mv) ? String(message.float_mv) : message.float_mv;
            if (message.total_mv != null && message.hasOwnProperty("total_mv"))
                object.total_mv = options.json && !isFinite(message.total_mv) ? String(message.total_mv) : message.total_mv;
            return object;
        };

        /**
         * Converts this SwDailyItem to JSON.
         * @function toJSON
         * @memberof septdata.SwDailyItem
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        SwDailyItem.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return SwDailyItem;
    })();

    septdata.SwDailyData = (function() {

        /**
         * Properties of a SwDailyData.
         * @memberof septdata
         * @interface ISwDailyData
         * @property {Array.<septdata.ISwDailyItem>|null} [datas] SwDailyData datas
         */

        /**
         * Constructs a new SwDailyData.
         * @memberof septdata
         * @classdesc Represents a SwDailyData.
         * @implements ISwDailyData
         * @constructor
         * @param {septdata.ISwDailyData=} [properties] Properties to set
         */
        function SwDailyData(properties) {
            this.datas = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * SwDailyData datas.
         * @member {Array.<septdata.ISwDailyItem>} datas
         * @memberof septdata.SwDailyData
         * @instance
         */
        SwDailyData.prototype.datas = $util.emptyArray;

        /**
         * Creates a new SwDailyData instance using the specified properties.
         * @function create
         * @memberof septdata.SwDailyData
         * @static
         * @param {septdata.ISwDailyData=} [properties] Properties to set
         * @returns {septdata.SwDailyData} SwDailyData instance
         */
        SwDailyData.create = function create(properties) {
            return new SwDailyData(properties);
        };

        /**
         * Encodes the specified SwDailyData message. Does not implicitly {@link septdata.SwDailyData.verify|verify} messages.
         * @function encode
         * @memberof septdata.SwDailyData
         * @static
         * @param {septdata.ISwDailyData} message SwDailyData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwDailyData.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.datas != null && message.datas.length)
                for (var i = 0; i < message.datas.length; ++i)
                    $root.septdata.SwDailyItem.encode(message.datas[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified SwDailyData message, length delimited. Does not implicitly {@link septdata.SwDailyData.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.SwDailyData
         * @static
         * @param {septdata.ISwDailyData} message SwDailyData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwDailyData.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a SwDailyData message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.SwDailyData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.SwDailyData} SwDailyData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwDailyData.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.SwDailyData();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.datas && message.datas.length))
                        message.datas = [];
                    message.datas.push($root.septdata.SwDailyItem.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a SwDailyData message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.SwDailyData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.SwDailyData} SwDailyData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwDailyData.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a SwDailyData message.
         * @function verify
         * @memberof septdata.SwDailyData
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        SwDailyData.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.datas != null && message.hasOwnProperty("datas")) {
                if (!Array.isArray(message.datas))
                    return "datas: array expected";
                for (var i = 0; i < message.datas.length; ++i) {
                    var error = $root.septdata.SwDailyItem.verify(message.datas[i]);
                    if (error)
                        return "datas." + error;
                }
            }
            return null;
        };

        /**
         * Creates a SwDailyData message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.SwDailyData
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.SwDailyData} SwDailyData
         */
        SwDailyData.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.SwDailyData)
                return object;
            var message = new $root.septdata.SwDailyData();
            if (object.datas) {
                if (!Array.isArray(object.datas))
                    throw TypeError(".septdata.SwDailyData.datas: array expected");
                message.datas = [];
                for (var i = 0; i < object.datas.length; ++i) {
                    if (typeof object.datas[i] !== "object")
                        throw TypeError(".septdata.SwDailyData.datas: object expected");
                    message.datas[i] = $root.septdata.SwDailyItem.fromObject(object.datas[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a SwDailyData message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.SwDailyData
         * @static
         * @param {septdata.SwDailyData} message SwDailyData
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        SwDailyData.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.datas = [];
            if (message.datas && message.datas.length) {
                object.datas = [];
                for (var j = 0; j < message.datas.length; ++j)
                    object.datas[j] = $root.septdata.SwDailyItem.toObject(message.datas[j], options);
            }
            return object;
        };

        /**
         * Converts this SwDailyData to JSON.
         * @function toJSON
         * @memberof septdata.SwDailyData
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        SwDailyData.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return SwDailyData;
    })();

    septdata.SwDailyMap = (function() {

        /**
         * Properties of a SwDailyMap.
         * @memberof septdata
         * @interface ISwDailyMap
         * @property {Object.<string,septdata.ISwDailyItem>|null} [dailyMap] SwDailyMap dailyMap
         */

        /**
         * Constructs a new SwDailyMap.
         * @memberof septdata
         * @classdesc Represents a SwDailyMap.
         * @implements ISwDailyMap
         * @constructor
         * @param {septdata.ISwDailyMap=} [properties] Properties to set
         */
        function SwDailyMap(properties) {
            this.dailyMap = {};
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * SwDailyMap dailyMap.
         * @member {Object.<string,septdata.ISwDailyItem>} dailyMap
         * @memberof septdata.SwDailyMap
         * @instance
         */
        SwDailyMap.prototype.dailyMap = $util.emptyObject;

        /**
         * Creates a new SwDailyMap instance using the specified properties.
         * @function create
         * @memberof septdata.SwDailyMap
         * @static
         * @param {septdata.ISwDailyMap=} [properties] Properties to set
         * @returns {septdata.SwDailyMap} SwDailyMap instance
         */
        SwDailyMap.create = function create(properties) {
            return new SwDailyMap(properties);
        };

        /**
         * Encodes the specified SwDailyMap message. Does not implicitly {@link septdata.SwDailyMap.verify|verify} messages.
         * @function encode
         * @memberof septdata.SwDailyMap
         * @static
         * @param {septdata.ISwDailyMap} message SwDailyMap message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwDailyMap.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.dailyMap != null && message.hasOwnProperty("dailyMap"))
                for (var keys = Object.keys(message.dailyMap), i = 0; i < keys.length; ++i) {
                    writer.uint32(/* id 1, wireType 2 =*/10).fork().uint32(/* id 1, wireType 2 =*/10).string(keys[i]);
                    $root.septdata.SwDailyItem.encode(message.dailyMap[keys[i]], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim().ldelim();
                }
            return writer;
        };

        /**
         * Encodes the specified SwDailyMap message, length delimited. Does not implicitly {@link septdata.SwDailyMap.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.SwDailyMap
         * @static
         * @param {septdata.ISwDailyMap} message SwDailyMap message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        SwDailyMap.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a SwDailyMap message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.SwDailyMap
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.SwDailyMap} SwDailyMap
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwDailyMap.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.SwDailyMap(), key;
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    reader.skip().pos++;
                    if (message.dailyMap === $util.emptyObject)
                        message.dailyMap = {};
                    key = reader.string();
                    reader.pos++;
                    message.dailyMap[key] = $root.septdata.SwDailyItem.decode(reader, reader.uint32());
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a SwDailyMap message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.SwDailyMap
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.SwDailyMap} SwDailyMap
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        SwDailyMap.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a SwDailyMap message.
         * @function verify
         * @memberof septdata.SwDailyMap
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        SwDailyMap.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.dailyMap != null && message.hasOwnProperty("dailyMap")) {
                if (!$util.isObject(message.dailyMap))
                    return "dailyMap: object expected";
                var key = Object.keys(message.dailyMap);
                for (var i = 0; i < key.length; ++i) {
                    var error = $root.septdata.SwDailyItem.verify(message.dailyMap[key[i]]);
                    if (error)
                        return "dailyMap." + error;
                }
            }
            return null;
        };

        /**
         * Creates a SwDailyMap message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.SwDailyMap
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.SwDailyMap} SwDailyMap
         */
        SwDailyMap.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.SwDailyMap)
                return object;
            var message = new $root.septdata.SwDailyMap();
            if (object.dailyMap) {
                if (typeof object.dailyMap !== "object")
                    throw TypeError(".septdata.SwDailyMap.dailyMap: object expected");
                message.dailyMap = {};
                for (var keys = Object.keys(object.dailyMap), i = 0; i < keys.length; ++i) {
                    if (typeof object.dailyMap[keys[i]] !== "object")
                        throw TypeError(".septdata.SwDailyMap.dailyMap: object expected");
                    message.dailyMap[keys[i]] = $root.septdata.SwDailyItem.fromObject(object.dailyMap[keys[i]]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a SwDailyMap message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.SwDailyMap
         * @static
         * @param {septdata.SwDailyMap} message SwDailyMap
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        SwDailyMap.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.objects || options.defaults)
                object.dailyMap = {};
            var keys2;
            if (message.dailyMap && (keys2 = Object.keys(message.dailyMap)).length) {
                object.dailyMap = {};
                for (var j = 0; j < keys2.length; ++j)
                    object.dailyMap[keys2[j]] = $root.septdata.SwDailyItem.toObject(message.dailyMap[keys2[j]], options);
            }
            return object;
        };

        /**
         * Converts this SwDailyMap to JSON.
         * @function toJSON
         * @memberof septdata.SwDailyMap
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        SwDailyMap.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return SwDailyMap;
    })();

    septdata.StockBasicInfo = (function() {

        /**
         * Properties of a StockBasicInfo.
         * @memberof septdata
         * @interface IStockBasicInfo
         * @property {string|null} [ts_code] StockBasicInfo ts_code
         * @property {string|null} [symbol] StockBasicInfo symbol
         * @property {string|null} [name] StockBasicInfo name
         * @property {string|null} [area] StockBasicInfo area
         * @property {string|null} [industry] StockBasicInfo industry
         * @property {string|null} [market] StockBasicInfo market
         * @property {string|null} [list_date] StockBasicInfo list_date
         * @property {string|null} [act_name] StockBasicInfo act_name
         */

        /**
         * Constructs a new StockBasicInfo.
         * @memberof septdata
         * @classdesc Represents a StockBasicInfo.
         * @implements IStockBasicInfo
         * @constructor
         * @param {septdata.IStockBasicInfo=} [properties] Properties to set
         */
        function StockBasicInfo(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * StockBasicInfo ts_code.
         * @member {string} ts_code
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.ts_code = "";

        /**
         * StockBasicInfo symbol.
         * @member {string} symbol
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.symbol = "";

        /**
         * StockBasicInfo name.
         * @member {string} name
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.name = "";

        /**
         * StockBasicInfo area.
         * @member {string} area
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.area = "";

        /**
         * StockBasicInfo industry.
         * @member {string} industry
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.industry = "";

        /**
         * StockBasicInfo market.
         * @member {string} market
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.market = "";

        /**
         * StockBasicInfo list_date.
         * @member {string} list_date
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.list_date = "";

        /**
         * StockBasicInfo act_name.
         * @member {string} act_name
         * @memberof septdata.StockBasicInfo
         * @instance
         */
        StockBasicInfo.prototype.act_name = "";

        /**
         * Creates a new StockBasicInfo instance using the specified properties.
         * @function create
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {septdata.IStockBasicInfo=} [properties] Properties to set
         * @returns {septdata.StockBasicInfo} StockBasicInfo instance
         */
        StockBasicInfo.create = function create(properties) {
            return new StockBasicInfo(properties);
        };

        /**
         * Encodes the specified StockBasicInfo message. Does not implicitly {@link septdata.StockBasicInfo.verify|verify} messages.
         * @function encode
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {septdata.IStockBasicInfo} message StockBasicInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockBasicInfo.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                writer.uint32(/* id 1, wireType 2 =*/10).string(message.ts_code);
            if (message.symbol != null && message.hasOwnProperty("symbol"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.symbol);
            if (message.name != null && message.hasOwnProperty("name"))
                writer.uint32(/* id 3, wireType 2 =*/26).string(message.name);
            if (message.area != null && message.hasOwnProperty("area"))
                writer.uint32(/* id 4, wireType 2 =*/34).string(message.area);
            if (message.industry != null && message.hasOwnProperty("industry"))
                writer.uint32(/* id 5, wireType 2 =*/42).string(message.industry);
            if (message.market != null && message.hasOwnProperty("market"))
                writer.uint32(/* id 6, wireType 2 =*/50).string(message.market);
            if (message.list_date != null && message.hasOwnProperty("list_date"))
                writer.uint32(/* id 7, wireType 2 =*/58).string(message.list_date);
            if (message.act_name != null && message.hasOwnProperty("act_name"))
                writer.uint32(/* id 8, wireType 2 =*/66).string(message.act_name);
            return writer;
        };

        /**
         * Encodes the specified StockBasicInfo message, length delimited. Does not implicitly {@link septdata.StockBasicInfo.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {septdata.IStockBasicInfo} message StockBasicInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockBasicInfo.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a StockBasicInfo message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.StockBasicInfo} StockBasicInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockBasicInfo.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.StockBasicInfo();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.ts_code = reader.string();
                    break;
                case 2:
                    message.symbol = reader.string();
                    break;
                case 3:
                    message.name = reader.string();
                    break;
                case 4:
                    message.area = reader.string();
                    break;
                case 5:
                    message.industry = reader.string();
                    break;
                case 6:
                    message.market = reader.string();
                    break;
                case 7:
                    message.list_date = reader.string();
                    break;
                case 8:
                    message.act_name = reader.string();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a StockBasicInfo message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.StockBasicInfo} StockBasicInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockBasicInfo.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a StockBasicInfo message.
         * @function verify
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        StockBasicInfo.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                if (!$util.isString(message.ts_code))
                    return "ts_code: string expected";
            if (message.symbol != null && message.hasOwnProperty("symbol"))
                if (!$util.isString(message.symbol))
                    return "symbol: string expected";
            if (message.name != null && message.hasOwnProperty("name"))
                if (!$util.isString(message.name))
                    return "name: string expected";
            if (message.area != null && message.hasOwnProperty("area"))
                if (!$util.isString(message.area))
                    return "area: string expected";
            if (message.industry != null && message.hasOwnProperty("industry"))
                if (!$util.isString(message.industry))
                    return "industry: string expected";
            if (message.market != null && message.hasOwnProperty("market"))
                if (!$util.isString(message.market))
                    return "market: string expected";
            if (message.list_date != null && message.hasOwnProperty("list_date"))
                if (!$util.isString(message.list_date))
                    return "list_date: string expected";
            if (message.act_name != null && message.hasOwnProperty("act_name"))
                if (!$util.isString(message.act_name))
                    return "act_name: string expected";
            return null;
        };

        /**
         * Creates a StockBasicInfo message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.StockBasicInfo} StockBasicInfo
         */
        StockBasicInfo.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.StockBasicInfo)
                return object;
            var message = new $root.septdata.StockBasicInfo();
            if (object.ts_code != null)
                message.ts_code = String(object.ts_code);
            if (object.symbol != null)
                message.symbol = String(object.symbol);
            if (object.name != null)
                message.name = String(object.name);
            if (object.area != null)
                message.area = String(object.area);
            if (object.industry != null)
                message.industry = String(object.industry);
            if (object.market != null)
                message.market = String(object.market);
            if (object.list_date != null)
                message.list_date = String(object.list_date);
            if (object.act_name != null)
                message.act_name = String(object.act_name);
            return message;
        };

        /**
         * Creates a plain object from a StockBasicInfo message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.StockBasicInfo
         * @static
         * @param {septdata.StockBasicInfo} message StockBasicInfo
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        StockBasicInfo.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.ts_code = "";
                object.symbol = "";
                object.name = "";
                object.area = "";
                object.industry = "";
                object.market = "";
                object.list_date = "";
                object.act_name = "";
            }
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                object.ts_code = message.ts_code;
            if (message.symbol != null && message.hasOwnProperty("symbol"))
                object.symbol = message.symbol;
            if (message.name != null && message.hasOwnProperty("name"))
                object.name = message.name;
            if (message.area != null && message.hasOwnProperty("area"))
                object.area = message.area;
            if (message.industry != null && message.hasOwnProperty("industry"))
                object.industry = message.industry;
            if (message.market != null && message.hasOwnProperty("market"))
                object.market = message.market;
            if (message.list_date != null && message.hasOwnProperty("list_date"))
                object.list_date = message.list_date;
            if (message.act_name != null && message.hasOwnProperty("act_name"))
                object.act_name = message.act_name;
            return object;
        };

        /**
         * Converts this StockBasicInfo to JSON.
         * @function toJSON
         * @memberof septdata.StockBasicInfo
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        StockBasicInfo.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return StockBasicInfo;
    })();

    septdata.StockListData = (function() {

        /**
         * Properties of a StockListData.
         * @memberof septdata
         * @interface IStockListData
         * @property {Array.<septdata.IStockBasicInfo>|null} [data] StockListData data
         */

        /**
         * Constructs a new StockListData.
         * @memberof septdata
         * @classdesc Represents a StockListData.
         * @implements IStockListData
         * @constructor
         * @param {septdata.IStockListData=} [properties] Properties to set
         */
        function StockListData(properties) {
            this.data = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * StockListData data.
         * @member {Array.<septdata.IStockBasicInfo>} data
         * @memberof septdata.StockListData
         * @instance
         */
        StockListData.prototype.data = $util.emptyArray;

        /**
         * Creates a new StockListData instance using the specified properties.
         * @function create
         * @memberof septdata.StockListData
         * @static
         * @param {septdata.IStockListData=} [properties] Properties to set
         * @returns {septdata.StockListData} StockListData instance
         */
        StockListData.create = function create(properties) {
            return new StockListData(properties);
        };

        /**
         * Encodes the specified StockListData message. Does not implicitly {@link septdata.StockListData.verify|verify} messages.
         * @function encode
         * @memberof septdata.StockListData
         * @static
         * @param {septdata.IStockListData} message StockListData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockListData.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.data != null && message.data.length)
                for (var i = 0; i < message.data.length; ++i)
                    $root.septdata.StockBasicInfo.encode(message.data[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified StockListData message, length delimited. Does not implicitly {@link septdata.StockListData.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.StockListData
         * @static
         * @param {septdata.IStockListData} message StockListData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockListData.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a StockListData message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.StockListData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.StockListData} StockListData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockListData.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.StockListData();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.data && message.data.length))
                        message.data = [];
                    message.data.push($root.septdata.StockBasicInfo.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a StockListData message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.StockListData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.StockListData} StockListData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockListData.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a StockListData message.
         * @function verify
         * @memberof septdata.StockListData
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        StockListData.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.data != null && message.hasOwnProperty("data")) {
                if (!Array.isArray(message.data))
                    return "data: array expected";
                for (var i = 0; i < message.data.length; ++i) {
                    var error = $root.septdata.StockBasicInfo.verify(message.data[i]);
                    if (error)
                        return "data." + error;
                }
            }
            return null;
        };

        /**
         * Creates a StockListData message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.StockListData
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.StockListData} StockListData
         */
        StockListData.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.StockListData)
                return object;
            var message = new $root.septdata.StockListData();
            if (object.data) {
                if (!Array.isArray(object.data))
                    throw TypeError(".septdata.StockListData.data: array expected");
                message.data = [];
                for (var i = 0; i < object.data.length; ++i) {
                    if (typeof object.data[i] !== "object")
                        throw TypeError(".septdata.StockListData.data: object expected");
                    message.data[i] = $root.septdata.StockBasicInfo.fromObject(object.data[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a StockListData message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.StockListData
         * @static
         * @param {septdata.StockListData} message StockListData
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        StockListData.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.data = [];
            if (message.data && message.data.length) {
                object.data = [];
                for (var j = 0; j < message.data.length; ++j)
                    object.data[j] = $root.septdata.StockBasicInfo.toObject(message.data[j], options);
            }
            return object;
        };

        /**
         * Converts this StockListData to JSON.
         * @function toJSON
         * @memberof septdata.StockListData
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        StockListData.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return StockListData;
    })();

    septdata.StockDailyInfo = (function() {

        /**
         * Properties of a StockDailyInfo.
         * @memberof septdata
         * @interface IStockDailyInfo
         * @property {string|null} [ts_code] StockDailyInfo ts_code
         * @property {string|null} [trade_date] StockDailyInfo trade_date
         * @property {number|null} [close] StockDailyInfo close
         * @property {number|null} [turnover_rate] StockDailyInfo turnover_rate
         * @property {number|null} [turnover_rate_f] StockDailyInfo turnover_rate_f
         * @property {number|null} [volume_ratio] StockDailyInfo volume_ratio
         * @property {number|null} [pe] StockDailyInfo pe
         * @property {number|null} [pe_ttm] StockDailyInfo pe_ttm
         * @property {number|null} [pb] StockDailyInfo pb
         * @property {number|null} [ps] StockDailyInfo ps
         * @property {number|null} [ps_ttm] StockDailyInfo ps_ttm
         * @property {number|null} [dv_ratio] StockDailyInfo dv_ratio
         * @property {number|null} [dv_ttm] StockDailyInfo dv_ttm
         * @property {number|null} [float_mv] StockDailyInfo float_mv
         * @property {number|null} [circ_mv] StockDailyInfo circ_mv
         * @property {number|null} [total_share] StockDailyInfo total_share
         * @property {number|null} [free_share] StockDailyInfo free_share
         * @property {number|null} [total_mv] StockDailyInfo total_mv
         */

        /**
         * Constructs a new StockDailyInfo.
         * @memberof septdata
         * @classdesc Represents a StockDailyInfo.
         * @implements IStockDailyInfo
         * @constructor
         * @param {septdata.IStockDailyInfo=} [properties] Properties to set
         */
        function StockDailyInfo(properties) {
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * StockDailyInfo ts_code.
         * @member {string} ts_code
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.ts_code = "";

        /**
         * StockDailyInfo trade_date.
         * @member {string} trade_date
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.trade_date = "";

        /**
         * StockDailyInfo close.
         * @member {number} close
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.close = 0;

        /**
         * StockDailyInfo turnover_rate.
         * @member {number} turnover_rate
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.turnover_rate = 0;

        /**
         * StockDailyInfo turnover_rate_f.
         * @member {number} turnover_rate_f
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.turnover_rate_f = 0;

        /**
         * StockDailyInfo volume_ratio.
         * @member {number} volume_ratio
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.volume_ratio = 0;

        /**
         * StockDailyInfo pe.
         * @member {number} pe
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.pe = 0;

        /**
         * StockDailyInfo pe_ttm.
         * @member {number} pe_ttm
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.pe_ttm = 0;

        /**
         * StockDailyInfo pb.
         * @member {number} pb
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.pb = 0;

        /**
         * StockDailyInfo ps.
         * @member {number} ps
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.ps = 0;

        /**
         * StockDailyInfo ps_ttm.
         * @member {number} ps_ttm
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.ps_ttm = 0;

        /**
         * StockDailyInfo dv_ratio.
         * @member {number} dv_ratio
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.dv_ratio = 0;

        /**
         * StockDailyInfo dv_ttm.
         * @member {number} dv_ttm
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.dv_ttm = 0;

        /**
         * StockDailyInfo float_mv.
         * @member {number} float_mv
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.float_mv = 0;

        /**
         * StockDailyInfo circ_mv.
         * @member {number} circ_mv
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.circ_mv = 0;

        /**
         * StockDailyInfo total_share.
         * @member {number} total_share
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.total_share = 0;

        /**
         * StockDailyInfo free_share.
         * @member {number} free_share
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.free_share = 0;

        /**
         * StockDailyInfo total_mv.
         * @member {number} total_mv
         * @memberof septdata.StockDailyInfo
         * @instance
         */
        StockDailyInfo.prototype.total_mv = 0;

        /**
         * Creates a new StockDailyInfo instance using the specified properties.
         * @function create
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {septdata.IStockDailyInfo=} [properties] Properties to set
         * @returns {septdata.StockDailyInfo} StockDailyInfo instance
         */
        StockDailyInfo.create = function create(properties) {
            return new StockDailyInfo(properties);
        };

        /**
         * Encodes the specified StockDailyInfo message. Does not implicitly {@link septdata.StockDailyInfo.verify|verify} messages.
         * @function encode
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {septdata.IStockDailyInfo} message StockDailyInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockDailyInfo.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                writer.uint32(/* id 1, wireType 2 =*/10).string(message.ts_code);
            if (message.trade_date != null && message.hasOwnProperty("trade_date"))
                writer.uint32(/* id 2, wireType 2 =*/18).string(message.trade_date);
            if (message.close != null && message.hasOwnProperty("close"))
                writer.uint32(/* id 3, wireType 5 =*/29).float(message.close);
            if (message.turnover_rate != null && message.hasOwnProperty("turnover_rate"))
                writer.uint32(/* id 4, wireType 5 =*/37).float(message.turnover_rate);
            if (message.turnover_rate_f != null && message.hasOwnProperty("turnover_rate_f"))
                writer.uint32(/* id 5, wireType 5 =*/45).float(message.turnover_rate_f);
            if (message.volume_ratio != null && message.hasOwnProperty("volume_ratio"))
                writer.uint32(/* id 6, wireType 5 =*/53).float(message.volume_ratio);
            if (message.pe != null && message.hasOwnProperty("pe"))
                writer.uint32(/* id 7, wireType 5 =*/61).float(message.pe);
            if (message.pe_ttm != null && message.hasOwnProperty("pe_ttm"))
                writer.uint32(/* id 8, wireType 5 =*/69).float(message.pe_ttm);
            if (message.pb != null && message.hasOwnProperty("pb"))
                writer.uint32(/* id 9, wireType 5 =*/77).float(message.pb);
            if (message.ps != null && message.hasOwnProperty("ps"))
                writer.uint32(/* id 10, wireType 5 =*/85).float(message.ps);
            if (message.ps_ttm != null && message.hasOwnProperty("ps_ttm"))
                writer.uint32(/* id 11, wireType 5 =*/93).float(message.ps_ttm);
            if (message.dv_ratio != null && message.hasOwnProperty("dv_ratio"))
                writer.uint32(/* id 12, wireType 5 =*/101).float(message.dv_ratio);
            if (message.dv_ttm != null && message.hasOwnProperty("dv_ttm"))
                writer.uint32(/* id 13, wireType 5 =*/109).float(message.dv_ttm);
            if (message.float_mv != null && message.hasOwnProperty("float_mv"))
                writer.uint32(/* id 14, wireType 5 =*/117).float(message.float_mv);
            if (message.circ_mv != null && message.hasOwnProperty("circ_mv"))
                writer.uint32(/* id 15, wireType 5 =*/125).float(message.circ_mv);
            if (message.total_share != null && message.hasOwnProperty("total_share"))
                writer.uint32(/* id 16, wireType 5 =*/133).float(message.total_share);
            if (message.free_share != null && message.hasOwnProperty("free_share"))
                writer.uint32(/* id 17, wireType 5 =*/141).float(message.free_share);
            if (message.total_mv != null && message.hasOwnProperty("total_mv"))
                writer.uint32(/* id 18, wireType 5 =*/149).float(message.total_mv);
            return writer;
        };

        /**
         * Encodes the specified StockDailyInfo message, length delimited. Does not implicitly {@link septdata.StockDailyInfo.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {septdata.IStockDailyInfo} message StockDailyInfo message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockDailyInfo.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a StockDailyInfo message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.StockDailyInfo} StockDailyInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockDailyInfo.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.StockDailyInfo();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    message.ts_code = reader.string();
                    break;
                case 2:
                    message.trade_date = reader.string();
                    break;
                case 3:
                    message.close = reader.float();
                    break;
                case 4:
                    message.turnover_rate = reader.float();
                    break;
                case 5:
                    message.turnover_rate_f = reader.float();
                    break;
                case 6:
                    message.volume_ratio = reader.float();
                    break;
                case 7:
                    message.pe = reader.float();
                    break;
                case 8:
                    message.pe_ttm = reader.float();
                    break;
                case 9:
                    message.pb = reader.float();
                    break;
                case 10:
                    message.ps = reader.float();
                    break;
                case 11:
                    message.ps_ttm = reader.float();
                    break;
                case 12:
                    message.dv_ratio = reader.float();
                    break;
                case 13:
                    message.dv_ttm = reader.float();
                    break;
                case 14:
                    message.float_mv = reader.float();
                    break;
                case 15:
                    message.circ_mv = reader.float();
                    break;
                case 16:
                    message.total_share = reader.float();
                    break;
                case 17:
                    message.free_share = reader.float();
                    break;
                case 18:
                    message.total_mv = reader.float();
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a StockDailyInfo message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.StockDailyInfo} StockDailyInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockDailyInfo.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a StockDailyInfo message.
         * @function verify
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        StockDailyInfo.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                if (!$util.isString(message.ts_code))
                    return "ts_code: string expected";
            if (message.trade_date != null && message.hasOwnProperty("trade_date"))
                if (!$util.isString(message.trade_date))
                    return "trade_date: string expected";
            if (message.close != null && message.hasOwnProperty("close"))
                if (typeof message.close !== "number")
                    return "close: number expected";
            if (message.turnover_rate != null && message.hasOwnProperty("turnover_rate"))
                if (typeof message.turnover_rate !== "number")
                    return "turnover_rate: number expected";
            if (message.turnover_rate_f != null && message.hasOwnProperty("turnover_rate_f"))
                if (typeof message.turnover_rate_f !== "number")
                    return "turnover_rate_f: number expected";
            if (message.volume_ratio != null && message.hasOwnProperty("volume_ratio"))
                if (typeof message.volume_ratio !== "number")
                    return "volume_ratio: number expected";
            if (message.pe != null && message.hasOwnProperty("pe"))
                if (typeof message.pe !== "number")
                    return "pe: number expected";
            if (message.pe_ttm != null && message.hasOwnProperty("pe_ttm"))
                if (typeof message.pe_ttm !== "number")
                    return "pe_ttm: number expected";
            if (message.pb != null && message.hasOwnProperty("pb"))
                if (typeof message.pb !== "number")
                    return "pb: number expected";
            if (message.ps != null && message.hasOwnProperty("ps"))
                if (typeof message.ps !== "number")
                    return "ps: number expected";
            if (message.ps_ttm != null && message.hasOwnProperty("ps_ttm"))
                if (typeof message.ps_ttm !== "number")
                    return "ps_ttm: number expected";
            if (message.dv_ratio != null && message.hasOwnProperty("dv_ratio"))
                if (typeof message.dv_ratio !== "number")
                    return "dv_ratio: number expected";
            if (message.dv_ttm != null && message.hasOwnProperty("dv_ttm"))
                if (typeof message.dv_ttm !== "number")
                    return "dv_ttm: number expected";
            if (message.float_mv != null && message.hasOwnProperty("float_mv"))
                if (typeof message.float_mv !== "number")
                    return "float_mv: number expected";
            if (message.circ_mv != null && message.hasOwnProperty("circ_mv"))
                if (typeof message.circ_mv !== "number")
                    return "circ_mv: number expected";
            if (message.total_share != null && message.hasOwnProperty("total_share"))
                if (typeof message.total_share !== "number")
                    return "total_share: number expected";
            if (message.free_share != null && message.hasOwnProperty("free_share"))
                if (typeof message.free_share !== "number")
                    return "free_share: number expected";
            if (message.total_mv != null && message.hasOwnProperty("total_mv"))
                if (typeof message.total_mv !== "number")
                    return "total_mv: number expected";
            return null;
        };

        /**
         * Creates a StockDailyInfo message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.StockDailyInfo} StockDailyInfo
         */
        StockDailyInfo.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.StockDailyInfo)
                return object;
            var message = new $root.septdata.StockDailyInfo();
            if (object.ts_code != null)
                message.ts_code = String(object.ts_code);
            if (object.trade_date != null)
                message.trade_date = String(object.trade_date);
            if (object.close != null)
                message.close = Number(object.close);
            if (object.turnover_rate != null)
                message.turnover_rate = Number(object.turnover_rate);
            if (object.turnover_rate_f != null)
                message.turnover_rate_f = Number(object.turnover_rate_f);
            if (object.volume_ratio != null)
                message.volume_ratio = Number(object.volume_ratio);
            if (object.pe != null)
                message.pe = Number(object.pe);
            if (object.pe_ttm != null)
                message.pe_ttm = Number(object.pe_ttm);
            if (object.pb != null)
                message.pb = Number(object.pb);
            if (object.ps != null)
                message.ps = Number(object.ps);
            if (object.ps_ttm != null)
                message.ps_ttm = Number(object.ps_ttm);
            if (object.dv_ratio != null)
                message.dv_ratio = Number(object.dv_ratio);
            if (object.dv_ttm != null)
                message.dv_ttm = Number(object.dv_ttm);
            if (object.float_mv != null)
                message.float_mv = Number(object.float_mv);
            if (object.circ_mv != null)
                message.circ_mv = Number(object.circ_mv);
            if (object.total_share != null)
                message.total_share = Number(object.total_share);
            if (object.free_share != null)
                message.free_share = Number(object.free_share);
            if (object.total_mv != null)
                message.total_mv = Number(object.total_mv);
            return message;
        };

        /**
         * Creates a plain object from a StockDailyInfo message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.StockDailyInfo
         * @static
         * @param {septdata.StockDailyInfo} message StockDailyInfo
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        StockDailyInfo.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.defaults) {
                object.ts_code = "";
                object.trade_date = "";
                object.close = 0;
                object.turnover_rate = 0;
                object.turnover_rate_f = 0;
                object.volume_ratio = 0;
                object.pe = 0;
                object.pe_ttm = 0;
                object.pb = 0;
                object.ps = 0;
                object.ps_ttm = 0;
                object.dv_ratio = 0;
                object.dv_ttm = 0;
                object.float_mv = 0;
                object.circ_mv = 0;
                object.total_share = 0;
                object.free_share = 0;
                object.total_mv = 0;
            }
            if (message.ts_code != null && message.hasOwnProperty("ts_code"))
                object.ts_code = message.ts_code;
            if (message.trade_date != null && message.hasOwnProperty("trade_date"))
                object.trade_date = message.trade_date;
            if (message.close != null && message.hasOwnProperty("close"))
                object.close = options.json && !isFinite(message.close) ? String(message.close) : message.close;
            if (message.turnover_rate != null && message.hasOwnProperty("turnover_rate"))
                object.turnover_rate = options.json && !isFinite(message.turnover_rate) ? String(message.turnover_rate) : message.turnover_rate;
            if (message.turnover_rate_f != null && message.hasOwnProperty("turnover_rate_f"))
                object.turnover_rate_f = options.json && !isFinite(message.turnover_rate_f) ? String(message.turnover_rate_f) : message.turnover_rate_f;
            if (message.volume_ratio != null && message.hasOwnProperty("volume_ratio"))
                object.volume_ratio = options.json && !isFinite(message.volume_ratio) ? String(message.volume_ratio) : message.volume_ratio;
            if (message.pe != null && message.hasOwnProperty("pe"))
                object.pe = options.json && !isFinite(message.pe) ? String(message.pe) : message.pe;
            if (message.pe_ttm != null && message.hasOwnProperty("pe_ttm"))
                object.pe_ttm = options.json && !isFinite(message.pe_ttm) ? String(message.pe_ttm) : message.pe_ttm;
            if (message.pb != null && message.hasOwnProperty("pb"))
                object.pb = options.json && !isFinite(message.pb) ? String(message.pb) : message.pb;
            if (message.ps != null && message.hasOwnProperty("ps"))
                object.ps = options.json && !isFinite(message.ps) ? String(message.ps) : message.ps;
            if (message.ps_ttm != null && message.hasOwnProperty("ps_ttm"))
                object.ps_ttm = options.json && !isFinite(message.ps_ttm) ? String(message.ps_ttm) : message.ps_ttm;
            if (message.dv_ratio != null && message.hasOwnProperty("dv_ratio"))
                object.dv_ratio = options.json && !isFinite(message.dv_ratio) ? String(message.dv_ratio) : message.dv_ratio;
            if (message.dv_ttm != null && message.hasOwnProperty("dv_ttm"))
                object.dv_ttm = options.json && !isFinite(message.dv_ttm) ? String(message.dv_ttm) : message.dv_ttm;
            if (message.float_mv != null && message.hasOwnProperty("float_mv"))
                object.float_mv = options.json && !isFinite(message.float_mv) ? String(message.float_mv) : message.float_mv;
            if (message.circ_mv != null && message.hasOwnProperty("circ_mv"))
                object.circ_mv = options.json && !isFinite(message.circ_mv) ? String(message.circ_mv) : message.circ_mv;
            if (message.total_share != null && message.hasOwnProperty("total_share"))
                object.total_share = options.json && !isFinite(message.total_share) ? String(message.total_share) : message.total_share;
            if (message.free_share != null && message.hasOwnProperty("free_share"))
                object.free_share = options.json && !isFinite(message.free_share) ? String(message.free_share) : message.free_share;
            if (message.total_mv != null && message.hasOwnProperty("total_mv"))
                object.total_mv = options.json && !isFinite(message.total_mv) ? String(message.total_mv) : message.total_mv;
            return object;
        };

        /**
         * Converts this StockDailyInfo to JSON.
         * @function toJSON
         * @memberof septdata.StockDailyInfo
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        StockDailyInfo.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return StockDailyInfo;
    })();

    septdata.StockDailyInfoData = (function() {

        /**
         * Properties of a StockDailyInfoData.
         * @memberof septdata
         * @interface IStockDailyInfoData
         * @property {Array.<septdata.IStockDailyInfo>|null} [data] StockDailyInfoData data
         */

        /**
         * Constructs a new StockDailyInfoData.
         * @memberof septdata
         * @classdesc Represents a StockDailyInfoData.
         * @implements IStockDailyInfoData
         * @constructor
         * @param {septdata.IStockDailyInfoData=} [properties] Properties to set
         */
        function StockDailyInfoData(properties) {
            this.data = [];
            if (properties)
                for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
                    if (properties[keys[i]] != null)
                        this[keys[i]] = properties[keys[i]];
        }

        /**
         * StockDailyInfoData data.
         * @member {Array.<septdata.IStockDailyInfo>} data
         * @memberof septdata.StockDailyInfoData
         * @instance
         */
        StockDailyInfoData.prototype.data = $util.emptyArray;

        /**
         * Creates a new StockDailyInfoData instance using the specified properties.
         * @function create
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {septdata.IStockDailyInfoData=} [properties] Properties to set
         * @returns {septdata.StockDailyInfoData} StockDailyInfoData instance
         */
        StockDailyInfoData.create = function create(properties) {
            return new StockDailyInfoData(properties);
        };

        /**
         * Encodes the specified StockDailyInfoData message. Does not implicitly {@link septdata.StockDailyInfoData.verify|verify} messages.
         * @function encode
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {septdata.IStockDailyInfoData} message StockDailyInfoData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockDailyInfoData.encode = function encode(message, writer) {
            if (!writer)
                writer = $Writer.create();
            if (message.data != null && message.data.length)
                for (var i = 0; i < message.data.length; ++i)
                    $root.septdata.StockDailyInfo.encode(message.data[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
            return writer;
        };

        /**
         * Encodes the specified StockDailyInfoData message, length delimited. Does not implicitly {@link septdata.StockDailyInfoData.verify|verify} messages.
         * @function encodeDelimited
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {septdata.IStockDailyInfoData} message StockDailyInfoData message or plain object to encode
         * @param {$protobuf.Writer} [writer] Writer to encode to
         * @returns {$protobuf.Writer} Writer
         */
        StockDailyInfoData.encodeDelimited = function encodeDelimited(message, writer) {
            return this.encode(message, writer).ldelim();
        };

        /**
         * Decodes a StockDailyInfoData message from the specified reader or buffer.
         * @function decode
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @param {number} [length] Message length if known beforehand
         * @returns {septdata.StockDailyInfoData} StockDailyInfoData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockDailyInfoData.decode = function decode(reader, length) {
            if (!(reader instanceof $Reader))
                reader = $Reader.create(reader);
            var end = length === undefined ? reader.len : reader.pos + length, message = new $root.septdata.StockDailyInfoData();
            while (reader.pos < end) {
                var tag = reader.uint32();
                switch (tag >>> 3) {
                case 1:
                    if (!(message.data && message.data.length))
                        message.data = [];
                    message.data.push($root.septdata.StockDailyInfo.decode(reader, reader.uint32()));
                    break;
                default:
                    reader.skipType(tag & 7);
                    break;
                }
            }
            return message;
        };

        /**
         * Decodes a StockDailyInfoData message from the specified reader or buffer, length delimited.
         * @function decodeDelimited
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
         * @returns {septdata.StockDailyInfoData} StockDailyInfoData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        StockDailyInfoData.decodeDelimited = function decodeDelimited(reader) {
            if (!(reader instanceof $Reader))
                reader = new $Reader(reader);
            return this.decode(reader, reader.uint32());
        };

        /**
         * Verifies a StockDailyInfoData message.
         * @function verify
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {Object.<string,*>} message Plain object to verify
         * @returns {string|null} `null` if valid, otherwise the reason why it is not
         */
        StockDailyInfoData.verify = function verify(message) {
            if (typeof message !== "object" || message === null)
                return "object expected";
            if (message.data != null && message.hasOwnProperty("data")) {
                if (!Array.isArray(message.data))
                    return "data: array expected";
                for (var i = 0; i < message.data.length; ++i) {
                    var error = $root.septdata.StockDailyInfo.verify(message.data[i]);
                    if (error)
                        return "data." + error;
                }
            }
            return null;
        };

        /**
         * Creates a StockDailyInfoData message from a plain object. Also converts values to their respective internal types.
         * @function fromObject
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {Object.<string,*>} object Plain object
         * @returns {septdata.StockDailyInfoData} StockDailyInfoData
         */
        StockDailyInfoData.fromObject = function fromObject(object) {
            if (object instanceof $root.septdata.StockDailyInfoData)
                return object;
            var message = new $root.septdata.StockDailyInfoData();
            if (object.data) {
                if (!Array.isArray(object.data))
                    throw TypeError(".septdata.StockDailyInfoData.data: array expected");
                message.data = [];
                for (var i = 0; i < object.data.length; ++i) {
                    if (typeof object.data[i] !== "object")
                        throw TypeError(".septdata.StockDailyInfoData.data: object expected");
                    message.data[i] = $root.septdata.StockDailyInfo.fromObject(object.data[i]);
                }
            }
            return message;
        };

        /**
         * Creates a plain object from a StockDailyInfoData message. Also converts values to other types if specified.
         * @function toObject
         * @memberof septdata.StockDailyInfoData
         * @static
         * @param {septdata.StockDailyInfoData} message StockDailyInfoData
         * @param {$protobuf.IConversionOptions} [options] Conversion options
         * @returns {Object.<string,*>} Plain object
         */
        StockDailyInfoData.toObject = function toObject(message, options) {
            if (!options)
                options = {};
            var object = {};
            if (options.arrays || options.defaults)
                object.data = [];
            if (message.data && message.data.length) {
                object.data = [];
                for (var j = 0; j < message.data.length; ++j)
                    object.data[j] = $root.septdata.StockDailyInfo.toObject(message.data[j], options);
            }
            return object;
        };

        /**
         * Converts this StockDailyInfoData to JSON.
         * @function toJSON
         * @memberof septdata.StockDailyInfoData
         * @instance
         * @returns {Object.<string,*>} JSON object
         */
        StockDailyInfoData.prototype.toJSON = function toJSON() {
            return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
        };

        return StockDailyInfoData;
    })();

    return septdata;
})();

module.exports = $root;
